<?php

/**
 * Description of LinkSet
 *
 * @author user3
 */
class Bluembo_Db_LinkSet {

    protected $_links = array();

    public function addLink(Bluembo_Db_Link $link)
    {
        $this->_links[$link->getKey()] = $link;
    }

    public function getLink($keyLink)
    {
        if (isset($this->_links[$keyLink])) {
            return $this->_links[$keyLink];
        }
        return null;
    }

//    public function findRowset($rowsetClass)
//    {
//        foreach ($this->_links as $link) {
//            if (get_class($link->getParentRowset()) == $rowsetClass) {
//                return $link->getParentRowset();
//            }
//
//            if (get_class($link->getDependentRowset()) == $rowsetClass) {
//                return $link->getDependentRowset();
//            }
//        }
//        return null;
//    }
    
//    public function findRowset(Bluembo_Db_Rowset $rowsetClass)
//    {
//        $tableName = $rowsetClass->getTable()->info('name');
//        foreach ($this->_links as $link) {
//            if ($link->getParentRowset()->getTable()->info('name') == $tableName) {
//                return $link->getParentRowset();
//            }
//
//            if ($link->getDependentRowset()->getTable()->info('name') == $tableName) {
//                return $link->getDependentRowset();
//            }
//        }
//        return null;
//    }
    
    public function findRowset($tableClassName)
    {
//        $tableName = $rowsetClass->getTable()->info('name');
        foreach ($this->_links as $link) {
            if ($link->getParentRowset()->getTableClass() == $tableClassName) {
                return $link->getParentRowset();
            }

            if ($link->getDependentRowset()->getTableClass() == $tableClassName) {
                return $link->getDependentRowset();
            }
        }
        return null;
    }

}